1. Field of the Invention
The present invention relates generally to trade matching systems and more particularly to determining how a quantity of an order in a market is allocated to other orders in the market.
2. Description of the Background of the Invention
An exchange provides one or more markets for the purchase and sale of various types of products including financial instruments such as stocks, bonds, futures contracts, options, cash, and other similar instruments. Agricultural products and commodities are also examples of products traded on such exchanges. A futures contract is a product that is a contract for the future delivery of another financial instrument such as a quantity of grains, metals, oils, bonds, or cash. Generally, each exchange establishes a specification for each market provided thereby that defines at least the product traded in the market, minimum quantities that must be traded, and minimum changes in price (e.g., tick size). For some types of products (e.g., futures or options), the specification further defines a quantity of the underlying product represented by one unit (or lot) of the product, and delivery and expiration dates.
Some products on an exchange are traded in an open outcry environment where the exchange provides a location for buyers and sellers to meet and negotiate a price for a quantity of a product. Other products are traded on an electronic trading platform (e.g., an electronic exchange) where traders use software to send an order to the trading platform. The order identifies the product, the quantity of the product the trader wishes to trade, a price at which the trader wishes to trade the product, and a direction of the order (i.e., whether the order is a bid or an offer). Other products are traded in an over-the-counter market (e.g., where products are not listed on an exchange).
A trading host on the trading platform monitors incoming orders received thereby and attempts to identify (i.e., match) one or more previously received orders stored in an order book database, wherein each identified order is contra to the incoming order and has a favorable price relative to the incoming order. In particular, if the incoming order is a bid then the identified order is an offer at a price that is identical to or less than the bid price. Similarly, if the incoming order is an offer at a particular price, the identified order is a bid at a price that is identical to or greater than the offer price.
Upon identification (matching) of a contra order, a minimum of the quantities associated with the identified order and the incoming order is matched and that quantity of each of the identified and incoming orders become two halves of a matched trade that is sent to a clearinghouse. The trading host considers each identified order in this manner until either all of the identified orders have been considered or all of the quantity associated with the incoming order has been matched. If any quantity of the incoming order remains, an entry is created in the order book database and information regarding the incoming order is recorded therein.
Traders access the markets on a trading platform using trading software that receives and displays at least a portion of the order book for a market, enables a trader to provide parameters for an order for the product traded in the market, and transmits the order to the trading platform. The trading software typically includes a graphical user interface to display at least a price and quantity of some of the entries in the order book associated with the market. The number of entries of the order book displayed is generally preconfigured by the trading software, limited by the trading platform, or customized by the user. Some graphical user interfaces display order books of multiple markets of one or more trading platforms. The trader may be an individual who trades on his/her behalf, a broker trading on behalf of another person or entity, a group, or an entity. Furthermore, the trader may be a system that automatically generates and submits orders.
If the trading host identifies multiple orders contra to the incoming order and that have an identical price, wherein the price of the multiple orders is favorable to the price of the incoming order, the trading host allocates the quantity of the incoming order among such identified orders in accordance with prioritization and allocation algorithms as defined in the product specification. A first-in/first-out (FIFO) allocation algorithm considers each identified order sequentially in accordance with when the identified order was received. The quantity of the incoming order is matched to the quantity of the identified order received earliest, then quantities of the next earliest, and so on until the quantity of the incoming order is exhausted. FIG. 1 illustrates how an incoming order to sell 100 lots of a product at a price of 111.01/lot received by the trading host is allocated to standing orders. Table 100 shows orders A-E that the trading host has identified in the order book that are contra to and that have a favorable price compared to the incoming order. Rows of the table 100 show information regarding standing orders A through E in the order book. A column 104 shows the price of each order, a column 106 shows the time each order was received, and a column 108 shows the quantity requested by each order. A column 110 shows the portion of the quantity of the incoming order allocated to each of the standing orders A-E. In particular, the 30 units requested in order A are allocated first because the order A has the most favorable price (111.03). The remaining 70 units of the incoming order are allocated to the orders B-E in accordance with the time they were received because such orders are all at the same price. Therefore, the orders B and C are allocated 50 and 20 units of the remaining 70 units of the incoming order, respectively. Because the quantity of the incoming order is exhausted, the remainder of the standing order C, and all of the standing orders D and E are not allocated any portion of the incoming order.
Some market specifications define the use of a pro-rata allocation algorithm, wherein a quantity of an incoming order is allocated to each of plurality of identified orders proportionally. FIG. 2 illustrates an example of how an incoming order to sell 100 lots of a product with a price of 111.01/lot is allocated among standing orders using the pro-rata allocation algorithm. As with the example of FIG. 1, the trading host has identified orders A-E as being contra (i.e., orders to buy) to the incoming order and having a favorable price. Further, 30 lots of the incoming order are allocated to the 30 lots requested in the order A first because this order has the highest bid price (i.e., is most favorable). Thereafter, the remaining 70 lots are allocated to the orders B-E proportionally because these orders are at the same price. In particular, the trading host calculates the total number of lots requested by the orders B-E (111 units) and calculates a proportion the quantity of each order comprises of the total. Column 202 shows the proportion corresponding to each order. The trading host calculates the portion of the remaining quantity (70) of the incoming order to allocate to each of the orders B-E by multiplying the proportion of the total requested by the order and the quantity remaining. Typically, the trading host rounds the calculated quantity to an integer and whether the trading host rounds up, down, or to a nearest integer is determined by the specification for the market. Any quantity of the incoming order that remains after pro-rata allocation (e.g., because the trading host rounds down the calculated quantity) is allocated to any orders that have an unfilled quantity on a FIFO basis. For example, for the order B, the trading host multiplies the proportion of quantity requested by the order B (i.e., 45%) by the remaining quantity (70) and thus allocates 32 lots of the remaining 70 lots to this order. Column 204 shows the quantity of the incoming order allocated to each of the orders A-E.
Some trading platforms provide a priority to certain standing orders in particular markets. An example of such an order is the first order that improves a price (i.e., improves the market) for the product during a trading session. To be given priority, the trading platform may require that the quantity associated with the order is at least a minimum quantity. Further, some trading platforms cap the quantity of an incoming order that is allocated to a standing order on the basis of a priority for certain markets. In addition, some trading platforms may give a preference to orders submitted by a trader who is designated as a market maker for the product. Other trading platforms may use other criteria to determine whether orders submitted by a particular trader are given a preference. Typically, when the trading host allocates a quantity of an incoming order to a plurality of identified orders at the same price, the trading host allocates a quantity of the incoming order to any orders that have been given priority. The trading host thereafter allocates any remaining quantity of the incoming order to orders submitted by traders designated to have a preference, and then allocates any still remaining quantity of the incoming order using the FIFO or pro-rata algorithms.
FIG. 3 illustrates an example of allocating an incoming order to sell 110 lots of a product where an order that improved the price is given priority. In this example, the order that is given priority must be for a quantity of more than 20 lots and a maximum of 50 lots are to be allocated to on the basis of priority. In addition, suppose that the order A improved the price and is for more than 20 lots. For these reasons the order A is given priority and up to 50 lots of any incoming order is allocated thereto before allocation to other orders at the same price. In particular, when an order for 110 lots is received, 50 lots is allocated to order A and the remaining quantity (60 lots) is allocated proportionally based on the quantity of standing orders that remains after the allocation to the order A based on the priority thereof as described above.
Pro-rata algorithms used in some markets may require that an allocation provided to a particular order in accordance with the pro-rata algorithm must meet at least a minimum allocation quantity. Any orders that do not meet or exceed the minimum allocation quantity are allocated to on a FIFO basis after the pro-rata allocation (if any quantity of the incoming order remains). In the example illustrated in FIG. 4, a column 402 shows the results of a pro-rata allocation of an incoming order of 110 lots among orders A-E. A column 404 shows the results of applying a minimum allocation quantity that has a value of 2 to the pro-rata allocation. In this example, the trading host rounds fractional quantities of the pro-rata allocation to the nearest integer. Because orders A and B would be allocated quantities that are less than the value of the minimum allocation quantity, the allocation to each of the orders A and B after applying the minimum allocation quantity is 0. The 2 lots of the incoming order that were not allocated to orders A and B because of applying the minimum allocation quantity are allocated on a FIFO basis and because order A was received earliest, order A is allotted the entire remainder of 2 lots (as shown in a column 406)
Allocation algorithms used by the trading host for a particular market may affect the liquidity of the market. Specifically, some allocation algorithms may encourage traders to submit more orders, where each order is relatively small. Other allocation algorithms may encourage a trader to use an electronic trading system that can monitor market activity and submit orders on behalf of the trader very quickly and without intervention. As markets and technologies available to traders evolve, the allocation algorithms used by trading hosts must also evolve accordingly to enhance liquidity and price discovery in markets.